﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Serialization;

namespace ElectronicCommerce.Framework.ServiceModel.WCF.BindingMessage
{

    /// <remarks/>
    [System.SerializableAttribute()]
    [XmlRoot("binding")]
    public class NetTcpBindingMsg
    {

        private NetTcpBindingMsgReaderQuotas readerQuotasField;

        private NetTcpBindingMsgReliableSession reliableSessionField;

        private NetTcpBindingMsgSecurity securityField;

        private bool transactionFlowField;

        private bool transactionFlowFieldSpecified;

        private NetTcpBindingMsgTransferMode transferModeField;

        private bool transferModeFieldSpecified;

        private string transactionProtocolField;

        private NetTcpBindingMsgHostNameComparisonMode hostNameComparisonModeField;

        private bool hostNameComparisonModeFieldSpecified;

        private int listenBacklogField;

        private bool listenBacklogFieldSpecified;

        private long maxBufferPoolSizeField;

        private bool maxBufferPoolSizeFieldSpecified;

        private int maxBufferSizeField;

        private bool maxBufferSizeFieldSpecified;

        private int maxConnectionsField;

        private bool maxConnectionsFieldSpecified;

        private long maxReceivedMessageSizeField;

        private bool maxReceivedMessageSizeFieldSpecified;

        private bool portSharingEnabledField;

        private bool portSharingEnabledFieldSpecified;

        private string nameField;

        private string closeTimeoutField;

        private string openTimeoutField;

        private string receiveTimeoutField;

        private string sendTimeoutField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        public NetTcpBindingMsg()
        {
            System.ServiceModel.NetTcpBinding binding = new System.ServiceModel.NetTcpBinding();
            this.maxBufferPoolSize = binding.MaxBufferPoolSize;
            this.maxReceivedMessageSize = binding.MaxReceivedMessageSize;
            this.hostNameComparisonMode = (NetTcpBindingMsgHostNameComparisonMode)binding.HostNameComparisonMode;
            this.listenBacklog = binding.ListenBacklog;
            this.maxBufferSize = binding.MaxBufferSize;
            this.maxConnections = binding.MaxConnections;
            this.portSharingEnabled = binding.PortSharingEnabled;
            this.transactionProtocol = "Default";
            this.transferMode = (NetTcpBindingMsgTransferMode)binding.TransferMode;
            this.transactionFlow = binding.TransactionFlow;
        }


        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("readerQuotas", typeof(NetTcpBindingMsgReaderQuotas))]
        public NetTcpBindingMsgReaderQuotas readerQuotas
        {
            get
            {
                return this.readerQuotasField;
            }
            set
            {
                this.readerQuotasField = value;
            }
        }

        [System.Xml.Serialization.XmlElementAttribute("reliableSession", typeof(NetTcpBindingMsgReliableSession))]
        public NetTcpBindingMsgReliableSession reliableSession
        {
            get
            {
                return this.reliableSessionField;
            }
            set
            {
                this.reliableSessionField = value;
            }
        }

        [System.Xml.Serialization.XmlElementAttribute("security", typeof(NetTcpBindingMsgSecurity))]
        public NetTcpBindingMsgSecurity security
        {
            get
            {
                return this.securityField;
            }
            set
            {
                this.securityField = value;
            }
        }



        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool transactionFlow
        {
            get
            {
                return this.transactionFlowField;
            }
            set
            {
                this.transactionFlowField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool transactionFlowSpecified
        {
            get
            {
                return this.transactionFlowFieldSpecified;
            }
            set
            {
                this.transactionFlowFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetTcpBindingMsgTransferMode transferMode
        {
            get
            {
                return this.transferModeField;
            }
            set
            {
                this.transferModeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool transferModeSpecified
        {
            get
            {
                return this.transferModeFieldSpecified;
            }
            set
            {
                this.transferModeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string transactionProtocol
        {
            get
            {
                return this.transactionProtocolField;
            }
            set
            {
                this.transactionProtocolField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetTcpBindingMsgHostNameComparisonMode hostNameComparisonMode
        {
            get
            {
                return this.hostNameComparisonModeField;
            }
            set
            {
                this.hostNameComparisonModeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool hostNameComparisonModeSpecified
        {
            get
            {
                return this.hostNameComparisonModeFieldSpecified;
            }
            set
            {
                this.hostNameComparisonModeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int listenBacklog
        {
            get
            {
                return this.listenBacklogField;
            }
            set
            {
                this.listenBacklogField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool listenBacklogSpecified
        {
            get
            {
                return this.listenBacklogFieldSpecified;
            }
            set
            {
                this.listenBacklogFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public long maxBufferPoolSize
        {
            get
            {
                return this.maxBufferPoolSizeField;
            }
            set
            {
                this.maxBufferPoolSizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxBufferPoolSizeSpecified
        {
            get
            {
                return this.maxBufferPoolSizeFieldSpecified;
            }
            set
            {
                this.maxBufferPoolSizeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxBufferSize
        {
            get
            {
                return this.maxBufferSizeField;
            }
            set
            {
                this.maxBufferSizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxBufferSizeSpecified
        {
            get
            {
                return this.maxBufferSizeFieldSpecified;
            }
            set
            {
                this.maxBufferSizeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxConnections
        {
            get
            {
                return this.maxConnectionsField;
            }
            set
            {
                this.maxConnectionsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxConnectionsSpecified
        {
            get
            {
                return this.maxConnectionsFieldSpecified;
            }
            set
            {
                this.maxConnectionsFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public long maxReceivedMessageSize
        {
            get
            {
                return this.maxReceivedMessageSizeField;
            }
            set
            {
                this.maxReceivedMessageSizeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxReceivedMessageSizeSpecified
        {
            get
            {
                return this.maxReceivedMessageSizeFieldSpecified;
            }
            set
            {
                this.maxReceivedMessageSizeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool portSharingEnabled
        {
            get
            {
                return this.portSharingEnabledField;
            }
            set
            {
                this.portSharingEnabledField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool portSharingEnabledSpecified
        {
            get
            {
                return this.portSharingEnabledFieldSpecified;
            }
            set
            {
                this.portSharingEnabledFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string closeTimeout
        {
            get
            {
                return this.closeTimeoutField;
            }
            set
            {
                this.closeTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string openTimeout
        {
            get
            {
                return this.openTimeoutField;
            }
            set
            {
                this.openTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string receiveTimeout
        {
            get
            {
                return this.receiveTimeoutField;
            }
            set
            {
                this.receiveTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string sendTimeout
        {
            get
            {
                return this.sendTimeoutField;
            }
            set
            {
                this.sendTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetTcpBindingMsgReaderQuotas
    {

        private int maxDepthField;

        private bool maxDepthFieldSpecified;

        private int maxStringContentLengthField;

        private bool maxStringContentLengthFieldSpecified;

        private int maxArrayLengthField;

        private bool maxArrayLengthFieldSpecified;

        private int maxBytesPerReadField;

        private bool maxBytesPerReadFieldSpecified;

        private int maxNameTableCharCountField;

        private bool maxNameTableCharCountFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;


        public NetTcpBindingMsgReaderQuotas()
        {
            System.ServiceModel.NetTcpBinding binding = new System.ServiceModel.NetTcpBinding();
            this.maxArrayLength = binding.ReaderQuotas.MaxArrayLength;
            this.maxBytesPerRead = binding.ReaderQuotas.MaxBytesPerRead;
            this.maxDepth = binding.ReaderQuotas.MaxDepth;
            this.maxNameTableCharCount = binding.ReaderQuotas.MaxNameTableCharCount;
            this.maxStringContentLength = binding.ReaderQuotas.MaxStringContentLength;
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxDepth
        {
            get
            {
                return this.maxDepthField;
            }
            set
            {
                this.maxDepthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxDepthSpecified
        {
            get
            {
                return this.maxDepthFieldSpecified;
            }
            set
            {
                this.maxDepthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxStringContentLength
        {
            get
            {
                return this.maxStringContentLengthField;
            }
            set
            {
                this.maxStringContentLengthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxStringContentLengthSpecified
        {
            get
            {
                return this.maxStringContentLengthFieldSpecified;
            }
            set
            {
                this.maxStringContentLengthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxArrayLength
        {
            get
            {
                return this.maxArrayLengthField;
            }
            set
            {
                this.maxArrayLengthField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxArrayLengthSpecified
        {
            get
            {
                return this.maxArrayLengthFieldSpecified;
            }
            set
            {
                this.maxArrayLengthFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxBytesPerRead
        {
            get
            {
                return this.maxBytesPerReadField;
            }
            set
            {
                this.maxBytesPerReadField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxBytesPerReadSpecified
        {
            get
            {
                return this.maxBytesPerReadFieldSpecified;
            }
            set
            {
                this.maxBytesPerReadFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public int maxNameTableCharCount
        {
            get
            {
                return this.maxNameTableCharCountField;
            }
            set
            {
                this.maxNameTableCharCountField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool maxNameTableCharCountSpecified
        {
            get
            {
                return this.maxNameTableCharCountFieldSpecified;
            }
            set
            {
                this.maxNameTableCharCountFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetTcpBindingMsgReliableSession
    {

        private bool enabledField;

        private bool enabledFieldSpecified;

        private bool orderedField;

        private bool orderedFieldSpecified;

        private string inactivityTimeoutField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;



        public NetTcpBindingMsgReliableSession()
        {
            System.ServiceModel.NetTcpBinding binding = new System.ServiceModel.NetTcpBinding();
            this.enabledField = binding.ReliableSession.Enabled;
            this.ordered = binding.ReliableSession.Ordered;
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool enabled
        {
            get
            {
                return this.enabledField;
            }
            set
            {
                this.enabledField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool enabledSpecified
        {
            get
            {
                return this.enabledFieldSpecified;
            }
            set
            {
                this.enabledFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool ordered
        {
            get
            {
                return this.orderedField;
            }
            set
            {
                this.orderedField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool orderedSpecified
        {
            get
            {
                return this.orderedFieldSpecified;
            }
            set
            {
                this.orderedFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string inactivityTimeout
        {
            get
            {
                return this.inactivityTimeoutField;
            }
            set
            {
                this.inactivityTimeoutField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetTcpBindingMsgSecurity
    {

        private NetTcpBindingMsgSecurityMessage messageField;

        private NetTcpBindingMsgSecurityTransport transportField;

        private NetTcpBindingMsgSecurityMode modeField;

        private bool modeFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;


        public NetTcpBindingMsgSecurity()
        {
            System.ServiceModel.NetTcpBinding binding = new System.ServiceModel.NetTcpBinding();
            this.mode = (NetTcpBindingMsgSecurityMode)binding.Security.Mode;
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlElementAttribute("message", typeof(NetTcpBindingMsgSecurityMessage))]
        public NetTcpBindingMsgSecurityMessage message
        {
            get
            {
                return this.messageField;
            }
            set
            {
                this.messageField = value;
            }
        }

        [System.Xml.Serialization.XmlElementAttribute("transport", typeof(NetTcpBindingMsgSecurityTransport))]
        public NetTcpBindingMsgSecurityTransport transport
        {
            get
            {
                return this.transportField;
            }
            set
            {
                this.transportField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetTcpBindingMsgSecurityMode mode
        {
            get
            {
                return this.modeField;
            }
            set
            {
                this.modeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool modeSpecified
        {
            get
            {
                return this.modeFieldSpecified;
            }
            set
            {
                this.modeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetTcpBindingMsgSecurityMessage
    {

        private NetTcpBindingMsgSecurityMessageClientCredentialType clientCredentialTypeField;

        private bool clientCredentialTypeFieldSpecified;

        private string algorithmSuiteField;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;


        public NetTcpBindingMsgSecurityMessage()
        {
            System.ServiceModel.NetTcpBinding binding = new System.ServiceModel.NetTcpBinding();

            this.clientCredentialType = (NetTcpBindingMsgSecurityMessageClientCredentialType)binding.Security.Message.ClientCredentialType;
        }


        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetTcpBindingMsgSecurityMessageClientCredentialType clientCredentialType
        {
            get
            {
                return this.clientCredentialTypeField;
            }
            set
            {
                this.clientCredentialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool clientCredentialTypeSpecified
        {
            get
            {
                return this.clientCredentialTypeFieldSpecified;
            }
            set
            {
                this.clientCredentialTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string algorithmSuite
        {
            get
            {
                return this.algorithmSuiteField;
            }
            set
            {
                this.algorithmSuiteField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetTcpBindingMsgSecurityMessageClientCredentialType
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Windows,

        /// <remarks/>
        UserName,

        /// <remarks/>
        Certificate,

        /// <remarks/>
        IssuedToken,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public class NetTcpBindingMsgSecurityTransport
    {

        private NetTcpBindingMsgSecurityTransportClientCredentialType clientCredentialTypeField;

        private bool clientCredentialTypeFieldSpecified;

        private NetTcpBindingMsgSecurityTransportProtectionLevel protectionLevelField;

        private bool protectionLevelFieldSpecified;

        private string lockAttributesField;

        private string lockAllAttributesExceptField;

        private string lockElementsField;

        private string lockAllElementsExceptField;

        private bool lockItemField;

        private bool lockItemFieldSpecified;

        public NetTcpBindingMsgSecurityTransport()
        {
            System.ServiceModel.NetTcpBinding binding = new System.ServiceModel.NetTcpBinding();
            this.clientCredentialType = (NetTcpBindingMsgSecurityTransportClientCredentialType)binding.Security.Transport.ClientCredentialType;
            this.protectionLevel = (NetTcpBindingMsgSecurityTransportProtectionLevel)binding.Security.Transport.ProtectionLevel;
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetTcpBindingMsgSecurityTransportClientCredentialType clientCredentialType
        {
            get
            {
                return this.clientCredentialTypeField;
            }
            set
            {
                this.clientCredentialTypeField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool clientCredentialTypeSpecified
        {
            get
            {
                return this.clientCredentialTypeFieldSpecified;
            }
            set
            {
                this.clientCredentialTypeFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public NetTcpBindingMsgSecurityTransportProtectionLevel protectionLevel
        {
            get
            {
                return this.protectionLevelField;
            }
            set
            {
                this.protectionLevelField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool protectionLevelSpecified
        {
            get
            {
                return this.protectionLevelFieldSpecified;
            }
            set
            {
                this.protectionLevelFieldSpecified = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAttributes
        {
            get
            {
                return this.lockAttributesField;
            }
            set
            {
                this.lockAttributesField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllAttributesExcept
        {
            get
            {
                return this.lockAllAttributesExceptField;
            }
            set
            {
                this.lockAllAttributesExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockElements
        {
            get
            {
                return this.lockElementsField;
            }
            set
            {
                this.lockElementsField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lockAllElementsExcept
        {
            get
            {
                return this.lockAllElementsExceptField;
            }
            set
            {
                this.lockAllElementsExceptField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public bool lockItem
        {
            get
            {
                return this.lockItemField;
            }
            set
            {
                this.lockItemField = value;
            }
        }

        /// <remarks/>
        [System.Xml.Serialization.XmlIgnoreAttribute()]
        public bool lockItemSpecified
        {
            get
            {
                return this.lockItemFieldSpecified;
            }
            set
            {
                this.lockItemFieldSpecified = value;
            }
        }
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetTcpBindingMsgSecurityTransportClientCredentialType
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Windows,

        /// <remarks/>
        Certificate,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetTcpBindingMsgSecurityTransportProtectionLevel
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Sign,

        /// <remarks/>
        EncryptAndSign,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetTcpBindingMsgSecurityMode
    {

        /// <remarks/>
        None,

        /// <remarks/>
        Transport,

        /// <remarks/>
        Message,

        /// <remarks/>
        TransportWithMessageCredential,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetTcpBindingMsgTransferMode
    {

        /// <remarks/>
        Buffered,

        /// <remarks/>
        Streamed,

        /// <remarks/>
        StreamedRequest,

        /// <remarks/>
        StreamedResponse,
    }

    /// <remarks/>
    [System.SerializableAttribute()]
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
    public enum NetTcpBindingMsgHostNameComparisonMode
    {

        /// <remarks/>
        StrongWildcard,

        /// <remarks/>
        Exact,

        /// <remarks/>
        WeakWildcard,
    }
}
